import { defineStore } from "pinia";
import type { reqCategoryType } from "@/api/attr";
import {
  requestCategory1,
  requestCategory2,
  requestCategory3,
} from "@/api/attr";
import { ElMessage } from "element-plus";

//state的类型限制
interface stoerType {
  categoryList1: reqCategoryType;
  categoryList2: reqCategoryType;
  categoryList3: reqCategoryType;
  category1Id: number | null;
  category2Id: number | null;
  category3Id: number | null;
}
const useAttrStore = defineStore("attr", {
  state: () :stoerType=> {
    return {
      categoryList1: [],
      categoryList2: [],
      categoryList3: [],
      category1Id: null,
      category2Id: null,
      category3Id: null,
    };
  },

  getters:{},
  actions:{
    //请求一级分类数据
    async getCategory1(){
        try{
            // 发送请求
            const result=await requestCategory1()
             //把一级分类的值赋值给state
             this.categoryList1=result
        } catch(e){
            ElMessage.error('请求一级分类失败')
        }
    },

    //请求二级分类数据
    async getCategory2(){
        try{
            // 发送请求
            const result=await requestCategory2(this.category1Id as number)
             //把一级分类的值赋值给state
             this.categoryList2=result
        } catch(e){
            ElMessage.error('请求二级分类失败')
        }
    },

    //请求三级分类数据
    async getCategory3(){
        try{
            // 发送请求
            const result=await requestCategory3(this.category2Id as number)
             //把一级分类的值赋值给state
             this.categoryList3=result
        } catch(e){
            ElMessage.error('请求三级分类失败')
        }
    },
  }
});

export default useAttrStore;
